স্প্রিং বুট ওআরএম (Spring Boot ORM) ব্যবহার করে REST API তৈরি করা একটি সাধারণ প্রক্রিয়া যা ডেটাবেসের সাথে ইন্টিগ্রেশন এবং ডেটা পরিচালনার কাজ সহজ করে। এখানে আমরা দেখব কীভাবে স্প্রিং বুট, JPA এবং Hibernate ব্যবহার করে RESTful API তৈরি করা যায়।
প্রয়োজনীয় ডিপেনডেন্সি
প্রথমে, আপনাকে আপনার pom.xml ফাইলে প্রয়োজনীয় ডিপেনডেন্সি যোগ করতে হবে।
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
এখানে আমরা spring-boot-starter-data-jpa এবং spring-boot-starter-web ডিপেনডেন্সি ব্যবহার করেছি। h2 ডাটাবেসটি একটি ইন-মেমরি ডাটাবেস হিসেবে ব্যবহৃত হবে যা শুধু ডেভেলপমেন্টের জন্য উপযোগী।
ডেটাবেস কনফিগারেশন
application.properties ফাইলে ডেটাবেস কনফিগারেশন যোগ করুন।
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
এটি H2 ডেটাবেসে সংযোগ স্থাপন করবে এবং Hibernate কে ডেটাবেসের স্কিমা স্বয়ংক্রিয়ভাবে আপডেট করার অনুমতি দেবে।
JPA Entity ক্লাস তৈরি
এখন আমরা একটি JPA Entity ক্লাস তৈরি করব যা ডেটাবেসের টেবিলের সাথে ম্যাপ হবে।
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Product {
@Id
private Long id;
private String name;
private double price;
// getters and setters
}
এই ক্লাসের মধ্যে @Entity অ্যানোটেশনটি এটি একটি JPA Entity ক্লাস হিসেবে চিহ্নিত করে এবং @Id অ্যানোটেশনটি id ক্ষেত্রটিকে প্রাইমারি কি হিসেবে চিহ্নিত করে।
Repository Interface
স্প্রিং ডেটা JPA ব্যবহার করে আমরা একটি Repository Interface তৈরি করব, যা ডেটাবেসের CRUD (Create, Read, Update, Delete) অপারেশনগুলি সহজভাবে পরিচালনা করবে।
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProductRepository extends JpaRepository<Product, Long> {
}
এখানে ProductRepository ইন্টারফেসটি JpaRepository কে এক্সটেন্ড করেছে এবং Product Entity ও Long টাইপ ব্যবহার করছে।
REST Controller ক্লাস
এখন আমরা একটি REST Controller ক্লাস তৈরি করব, যা আমাদের API-এর হ্যান্ডলারের কাজ করবে। এখানে আমরা কিছু সাধারণ HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করব।
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional;
@RestController
@RequestMapping("/api/products")
public class ProductController {
@Autowired
private ProductRepository productRepository;
// Get all products
@GetMapping
public List<Product> getAllProducts() {
return productRepository.findAll();
}
// Get product by ID
@GetMapping("/{id}")
public Optional<Product> getProductById(@PathVariable Long id) {
return productRepository.findById(id);
}
// Create a new product
@PostMapping
public Product createProduct(@RequestBody Product product) {
return productRepository.save(product);
}
// Update product by ID
@PutMapping("/{id}")
public Product updateProduct(@PathVariable Long id, @RequestBody Product productDetails) {
Product product = productRepository.findById(id).orElseThrow();
product.setName(productDetails.getName());
product.setPrice(productDetails.getPrice());
return productRepository.save(product);
}
// Delete product by ID
@DeleteMapping("/{id}")
public void deleteProduct(@PathVariable Long id) {
productRepository.deleteById(id);
}
}
এই Controller ক্লাসটি RESTful API তৈরির জন্য প্রয়োজনীয় GET, POST, PUT, DELETE মেথডগুলিকে ম্যানেজ করবে। এখানে আমরা স্প্রিং ডেটা JPA-এর ProductRepository ব্যবহার করে ডেটাবেস থেকে ডেটা রিট্রিভ, ক্রিয়েট, আপডেট এবং ডিলিট করছি।
অ্যাপ্লিকেশন চালানো
এখন আপনার অ্যাপ্লিকেশন চালানোর জন্য, SpringBootApplication ক্লাস তৈরি করুন:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
এটি অ্যাপ্লিকেশন শুরু করবে এবং আপনার API প্রস্তুত হবে।
API টেস্টিং
আপনি API গুলি টেস্ট করার জন্য Postman বা Curl ব্যবহার করতে পারেন।
- GET
/api/products- সকল প্রোডাক্ট দেখাবে। - POST
/api/products- একটি নতুন প্রোডাক্ট তৈরি করবে। - GET
/api/products/{id}- নির্দিষ্ট প্রোডাক্ট ID দিয়ে তথ্য দেখাবে। - PUT
/api/products/{id}- প্রোডাক্টের তথ্য আপডেট করবে। - DELETE
/api/products/{id}- প্রোডাক্ট মুছে ফেলবে।
স্প্রিং বুট ওআরএম ব্যবহার করে REST API তৈরি করা খুবই সহজ এবং এর মাধ্যমে আপনি দ্রুত ডেটাবেসের সাথে ইন্টিগ্রেশন করতে পারেন। JPA এবং Hibernate এর সাহায্যে ডেটাবেস অপারেশনগুলো খুব কম কোডে সম্পন্ন করা সম্ভব।